With the remarkable advance in information technology, computers have become more and more important in our daily lives. Computer software or hardware engineers are no longer the only group of people interacting with computers. Consequently, non-technical users may still feel uncomfortable when interacting with computers because common “human-computer” interaction interfaces, such as a keyboard and mouse, are unnatural to operate and not user-friendly. Furthermore, in some user contexts such as driving a vehicle, such interfaces are not an option due to safety considerations.
To overcome this problem, voice user interface systems have been developed to provide a friendlier “human-computer” interface to allow users to communicate with computers with spoken dialogs. Meanwhile, computers have been equipped with speech recognition and analyzing capability to convert the spoken dialogs into a machine readable format, and dialog developers anticipate and design possible dialogs to facilitate natural language dialogs between computers and computer users.
In designing the dialogs, a dialog developer needs to focus on scripting system prompts and user responses maintaining natural flows of the dialogs, at the same time, the dialog developer may have to develop underlying codes for the dialog while scripting the dialog. However, it is almost impossible for the dialog developer to handle both tasks well, because the skill set required for each task is substantially different. Thus, a tool and method which allows the developer to focus directly on the dialog flow development with an easy to use graphic interface is highly desirable.
During the process of dialog development, data content and structure rapidly expand and can lead to a large number of possible dialog paths. If an error occurs in one of the dialog paths, it would be difficult and time-consuming for the dialog designer to locate the exact position of the error in order to correct it. Therefore, it would be helpful to the dialog designer if he or she could oversee the structure or network of the dialog paths in order to quickly identify the location of the error and correct the contents of the dialog more readily.
A “loop” is a common problem in dialog design, meaning that the dialog path does not proceed to a desirable ending, but keeps repeating or “looping back” to the same instance of dialog. For example, the loop problem may occur if one of the prompts in the dialog path is “where do you want to go?” and the dialog flow keeps going back to this prompt without reaching any meaningful ending of the dialog. However, the loop does not always indicate an error, for instance, if the user does not provide a clear and unambiguous response, the system may want to loop a verification prompt back for a clearer and more unambiguous response from the user. A dialog design tool which helps the dialog designer identify and detect loops in the dialog paths is also highly desirable.
Japanese patent publication by Amemiya (JP 10-154070) discloses a user interface design apparatus and method. More particularly, this publication describes that a link is attached to each object to facilitate user interface simulation which is designed by a user. It states that the first link is designated through user operation to a second object which is correlated with the content of the first object, and a second link is generated to connect a third object which is associated with the content of the second object. However, Amemiya does not disclose how to locate a loop in a dialog path, nor provide the user an overview of the dialog path network and a quick way to retrieve contents of dialogs.
U.S. Pat. No. 5,577,165 by Takebayashi et al. discloses a speech dialog system capable of realizing natural and smooth dialog between the system and a human user, and easy maneuverability of the system. The dialog between the system and the user is managed by controlling transitions between user states during which the input speech is to be entered and system states during which the system response is to be outputted. However, Takebayashi does not disclose either how to visualize the network of the dialog paths, or how to detect and identify the loop in the dialog path.
U.S. Pat. No. 6,510,411 to Norton et al. discloses a task oriented dialog model and manager to simplify the process of developing call or dialog flows for use in a spoken dialog system. By using this dialog development tool, it is only necessary for the developer to input the application or task specific information into the development tool and leave management of the call flow and other generic tasks to the dialog manager as disclosed in this patent. However, like Takebayashi illustrated above, Norton also does not disclose or show how to visualize the network of the dialog paths, or how to detect a loop or loops in the dialog path in the dialog model. Furthermore, Norton discloses a task oriented dialog model instead of a state oriented model as in the present invention.
WO 02/37268 to Scholz et al. discloses a Dialog Flow Interpreter (DFI) for implementing low-level details of dialogs, as well as translator object classes for handling specific types of data (e.g., currency, dates, string, variables, etc.). More particularly, the DFI is able to drive the entire dialog of a speech application from start to finish automatically, thus eliminating a crucial and often complex task of dialog management. Even though Scholz discloses generating Data File 220, it does not disclose or teach anything related to how to manage the data file, such as how to visualize the network of the dialog paths, or how to detect a loop or loops in the dialog path, similar to the references mentioned above.
Therefore, there remains a need for a new and improved dialog design tool and method which allow the dialog developer to design natural language dialogs and create easily extractable data structure for voice user interfaces.